From: Georges Basile Stavracas Neto Date: Mon, 25 May 2020 19:00:23 +0000 (-0300) Subject: appDisplay: Ignore dragging over leeways X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~124 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8e24ac6b261c7fce4ab72ad2903325405bc10564;p=gnome-shell.git appDisplay: Ignore dragging over leeways The leeways are parts of the icon that ignore incoming drag events. This is how IconGrid and IconGridLayout treat it, and this is how the icons should treat themselves too. Make AppIcon ignore dragging over the left and right leeways. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index eadbe9bb4..6ae3f0eb5 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -2212,24 +2212,37 @@ var AppIcon = GObject.registerClass({ return DND.DragMotionResult.CONTINUE; } - handleDragOver(source) { + _withinLeeways(x) { + return x < IconGrid.LEFT_DIVIDER_LEEWAY || + x > this.width - IconGrid.RIGHT_DIVIDER_LEEWAY; + } + + handleDragOver(source, _actor, x) { if (source == this) return DND.DragMotionResult.NO_DROP; if (!this._canAccept(source)) return DND.DragMotionResult.CONTINUE; + if (this._withinLeeways(x)) { + this._setHoveringByDnd(false); + return DND.DragMotionResult.CONTINUE; + } + this._setHoveringByDnd(true); return DND.DragMotionResult.MOVE_DROP; } - acceptDrop(source) { + acceptDrop(source, _actor, x) { this._setHoveringByDnd(false); if (!this._canAccept(source)) return false; + if (this._withinLeeways(x)) + return false; + let view = _getViewFromIcon(this); let apps = [this.id, source.id];